home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
gnu
/
flex_247.zip
/
flex_247
/
MISC
/
VMS
/
VMS.stuff
< prev
Wrap
Text File
|
1990-11-20
|
3KB
|
63 lines
(Message inbox:115)
Date: Tue, 20 Nov 90 14:45 EDT
From: Stu McGraw <SYSMAN%hilbert@gte.com>
Subject: Flex bug and fix
To: vern@cs.cornell.edu
X-Vms-To: IN%"vern@cs.cornell.edu"
Hi Vern,
I just installed (on VMS) the new version of flex (2.3.6) that
was posted to usenet recently. Thanks! You did a terrific job! I've
been using an older version but really needed the eight-bit support.
I did come across a minor bug though. On VMS, when you do a "flex -pv
foo" and foo doesn't exist, you get an access violation (due to deref-
rencing a null pointer) when flexend() tries to print statistics, some
of which (e.g the starting time) have not been initialized yet. I fixed
this in my version by setting a boolean at the end of flexinit() and
only doing the printstats stuff if it is set (on the theory that this
is more reliable than trying to maintain the ordering of everything
or checking each pointer for null individually.)
I also added a VMS-style command line interface (like the one bison
has) that you might want to include in future versions. I don't know
how interested you are in providing VMS suppport (probably not very!)
so I packaged it so that changes to your code are minimal (a few lines
changed in main.c along with the bug fix mentioned above, and a few new
VMS specific files). The VMS files could be segregated in ./MISC or a
./VMS subdirectory. The VMS command line change in main.c is #ifdef'd
so that it can be compiled for that or for the original unix-style
interface.
I reworked the VMS makefile so that one can build flex with either the
unix-style command line interface (as it is now) or with the VMS-style
command line interface by selecting a few defines. I also have a VMS
help file entry derived from flex.man (after many hours of editing!).
Finally, a request for a minor change for future distributions. Would
it be possible to include in the package pre-formatted versions of
flex.1 and flexdoc.1 (flex.man and flexdoc.man)? Your makefile has
a target ("vms") to make flex.man. If this was a dependent of "distrib"
rather than the other way around this would happen automatically. Of
course, then these files would also be included in the distribution for
unix sites but the unix makefile could include "rm *.man" in some target
involved in building flex to get rid of them. Also, when formatting the
man pages for VMS, piping the nroff output through "col -b" removes the
back-spaces, at least on our Ultrix system here, and makes the files much
more useful on non-unix systems. I would have made these changes to the
makefile myself and provided a diff for you but I'm not a very expert
unix user and you I'm sure have a much better chance of doing it right!
If your interested, I'll be happy to send you this stuff. I shouldn't
require much effort on your part -- a small context diff for main.c,
everthing else can just be dumped in a flex subdirectory. It includes
copeious (sorry about the spelling) documentation.
Thanks again,
-- Stu
--
Stuart McGraw sjm0@gte.com
GTE Labs, Waltham MA mcgraw@hilbert.gte.com
(617) 466-2525 {hsuc6,harvard}!bunny!hilbert.gte.com!mcgraw